Causing a brightness level of a light to change

ABSTRACT

A server device can periodically obtain information concerning illuminance of ambient light from light sensors associated with light sources, and can obtain respective brightness level values associated with respective brightness levels of the light sources. The server device can calculate an illuminance value associated with the illuminance of the ambient light based on the information, determine an adjusted brightness level value for the light sources based on the illuminance value, and determine transition times and transition rates based on the respective brightness level values and the adjusted brightness level value. The server device can cause the respective brightness levels to change according to the adjusted brightness level value, the transition times, and the transition rates, where the transition times and the transition rates are to be used to transition the respective brightness levels of the light sources from the respective brightness level values to the adjusted brightness level value.

RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.16/171,071, filed Oct. 25, 2018, which is incorporated herein byreference.

BACKGROUND

Daylight harvesting is an energy management technique to reduce orminimize a light source's power usage based on the brightness of ambientlight around the light source. The light source can include a lightsensor to capture the ambient light, which can be analyzed to determinea preferred brightness level for a light associated with the lightsource.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A-1D are example diagrams of example implementations describedherein.

FIG. 2 is a diagram of an example environment in which systems and/ormethods, described herein, can be implemented.

FIG. 3 is a diagram of example components of one or more devices of FIG.2.

FIG. 4 is a flow chart of an example process for causing a brightnesslevel of a light to change.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

The following detailed description of example implementations refers tothe accompanying drawings. The same reference numbers in differentdrawings can identify the same or similar elements.

A server can track ambient light conditions for a group of lightsources. A light source of the group of light sources can have a lightthat emits light at a brightness level and a light sensor that capturesambient light information. The light source can transmit the ambientlight information to the server, which can determine illuminanceinformation concerning the ambient light. In some cases, the server candetermine a preferred brightness level for the light of the light sourcebased on the illuminance information. The server can direct the lightsource to change the brightness level of the light from a currentbrightness level to the preferred brightness level. However, in somecases, a sudden change to the brightness level can cause sudden “pops”of light that can be distracting and/or dangerous to vehicle operators,pedestrians, livestock, and/or the like. Moreover, in some cases, suchas on a partly-cloudy day, the server can cause the light source tocontinually change the brightness level of the light, which can cause“flashing” of light that can be just as distracting and/or dangerous asthe “pops” of light. Continually changing the brightness level can alsolead to unnecessary power consumption by the light source.

Some implementations, described herein, provide a monitoring platformthat calculates an illuminance value associated with an illuminance ofthe ambient light collected by one or more light sources, determines anadjusted brightness level value for the one or more light sources basedon the illuminance value, and causes respective brightness levels of theone or more light sources to gradually change, so as to not startlevehicle operators, pedestrians, livestock, and/or the like. According tosome implementations, the monitoring platform determines one or moretransition times and one or more transition rates based on differencesbetween the adjusted brightness level value and current respectivebrightness level values associated with the respective brightness levelsof the one or more light sources. In some implementations, the one ormore transition times and the one or more transition rates are to beused to transition the respective brightness levels of the one or morelight sources from the respective brightness level values to theadjusted brightness level value.

In this way, some implementations described herein provide themonitoring platform with information that can be used to optimallychange settings and configurations related to the respective brightnesslevels of the one or more light sources. Moreover, some implementationsdescribed herein can allow the monitoring platform to determine and/orconfigure brightness level changing protocols, which can prevent orreduce the “pops” of lights and/or the “flashing” of light that createdistracting and/or dangerous conditions. This can result in theincreased safety of the vehicle operators, pedestrians, livestock,and/or the like. This can also result in less power consumption by theone or more light sources, which can reduce costs associated withpowering the one or more light sources.

Furthermore, implementations described herein are automated and cancapture and process numerous (e.g., hundreds, thousands, millions,billions, and/or the like) data points to determine relationships forone or more transition times and/or one or more transition rates inregard to respective brightness level values and adjusted brightnesslevel values (e.g., hundreds, thousands, millions, and/or the like) atthe same time. This can improve speed and efficiency of the process andconserve computing resources (e.g., processor resources, memoryresources, and/or the like) of the monitoring platform and/or the clientdevice. Furthermore, implementations described herein use a rigorous,computerized process to perform tasks or roles that were not previouslyperformed or were previously performed using subjective human intuitionor input. For example, currently there does not exist a technique toautomatically collect information concerning respective brightness levelvalues and adjusted brightness level values to determine a relationshipbetween respective brightness level values and adjusted brightness levelvalues for calculating one or more transitions times and/or one or moretransition rates. Finally, implementations described herein conservecomputing resources (e.g., processor resources, memory resources, and/orthe like) that would otherwise be wasted in attempting to assist a humanin collecting respective brightness level values and adjusted brightnesslevel values, determining a relationship for one or more transitiontimes and/or one or more transition rates in regard to respectivebrightness level values and adjusted brightness level values, andcalculating one or more transitions times and/or one or more transitionrates location data based on the relationship by hand.

FIGS. 1A-1D are diagrams of example implementations 100 describedherein. In some implementations, example implementation 100 can includea light source, a monitoring platform, and a client device. In someimplementations, the light source, the monitoring platform, and/or theclient device can be connected via a network, such as the Internet, anintranet, and/or the like. In some implementations, the light source cancommunicate with the monitoring platform via a wireless connection, suchas a cellular connection. In some implementations, the light source cancommunicate with the monitoring platform via the cellular connectionthrough a base station. Some example implementations described hereinconcern a single light source, but implementations can include aplurality of light sources.

In some implementations, the client device can communicate with thelight source and/or the monitoring platform via the network. In someimplementations, the client device can obtain information about thelight source (e.g. status information about the light source) and/orinformation about the monitoring platform (e.g., status informationabout the monitoring platform, status information about one or morelight sources that the monitoring platform is monitoring, and/or thelike). In some implementations, the client device can cause display ofthe information about the light source and/or the information about themonitoring platform to a user.

As shown in FIG. 1A, example implementation 100 can include a pluralityof light sources (e.g., one or more groups of light sources that aremonitored by the monitoring platform). In some implementations, theplurality of light sources can be located in a similar environment, suchas along one or more roads and/or highways, throughout a community(e.g., a neighborhood, a city, and/or the like), throughout one or moreutilities (e.g., an airport, an electricity generation plant, awastewater plant, and/or the like), around one or more parking lots,around one or more buildings (e.g., a housing complex, a college campus,and/or the like), around one or more physical structures (e.g.,monuments, statues, and/or the like), and/or the like. In someimplementations, the plurality of light sources can be divided into oneor more groups of light sources.

In some implementations, a light source can include a light sensor(e.g., a photocell, a photo resistor, a photovoltaic cell, and/or thelike). Some example implementations described herein concern a lightsource with a single light sensor, but implementations can include alight source with a plurality of light sensors. As shown in FIG. 1A, insome implementations, the light sensor can detect ambient light (e.g.,available light in an environment around the light sensor; availablelight in the environment around the light sensor associated withdaylight conditions; light that is direct, reflected, refracted, and/orthe like from another light source available in the environment aroundthe light sensor; and/or the like). In some implementations, the lightsensor can collect ambient light information, such as informationconcerning luminance of the ambient light, information concerningbrightness of the ambient light, information concerning illuminance ofthe ambient light, and/or the like. In some implementations, the lightsource can obtain (e.g., receive, fetch, collect, capture, and/or thelike) the ambient light information from the light sensor. In someimplementations, the light source can obtain the ambient lightinformation from the light sensor when the light sensor detects that theambient light satisfies a threshold (e.g., the available light in theenvironment around the light sensor is greater than an ambient lightlevel threshold, the available light in the environment around the lightsensor is less than an ambient light level threshold, and/or the like).

In some implementations, the light source can include a light, such as ahalogen light, an incandescent light, a compact fluorescent (CFL) light,a light emitting diode (LED) light, a florescent light, a neon light,and/or the like. Some example implementations described herein concern alight source with a single light, but implementations can include alight source with a plurality of lights. In some implementations, thelight has a brightness level associated with a brightness of the light.In some implementations, the light source can collect a brightness levelvalue that indicates the brightness level of the light. As shown in FIG.1A, in some implementations, the brightness level value can conform to ascale, such as a scale from 0 to 100, in increments of 0.5, 1, 5, and/orthe like. In some implementations, a minimum brightness level value(e.g., a brightness level value of 0) indicates that the light is turnedoff and not emitting light, a maximum brightness level value (e.g., abrightness level value of 100) indicates that the light is turned on andemitting a maximum amount of light that the light is capable ofemitting, and a particular brightness level value of a range ofbrightness level values between the minimum brightness level value andthe maximum brightness level value (e.g., a brightness level value of20, 25, 50, 62, 78.5, 93, and/or the like) indicates that the light isturned on and emitting a particular amount of light. In someimplementations, the light source can obtain (e.g., receive, fetch,collect, capture, and/or the like) the brightness level value from thelight.

As shown in FIG. 1B the light source can send information, data, and/orthe like to the monitoring platform. As shown by reference number 102,the light source can send (e.g., transmit via the network) the ambientlight information to the monitoring platform. For example, the lightsource can send the information concerning luminance of the ambientlight, the information concerning brightness of the ambient light, theinformation concerning illuminance of the ambient light, and/or the liketo the monitoring platform. In some implementations, the light sourcecan process the ambient light information (e.g., perform a debouncingfunction, a noise-reduction function, and/or the like) to reduce and/orremove noise and/or erroneous data associated with the ambient lightinformation. As shown by reference number 104, the light source can send(e.g., transmit via the network) the brightness level value to themonitoring platform. In some implementations, the monitoring platformcan obtain (e.g., receive, fetch, collect, capture, and/or the like) theambient light information, the brightness level value, and/or the likefrom the light source.

In some implementations, the monitoring platform can periodically obtainthe ambient light information, the brightness level value, and/or thelike from the light source. For example, the monitoring platform canobtain the information on a scheduled basis (e.g., every 30 seconds,every minute, every 4 minutes, every 30 minutes, every hour, every 3hours, every 5 hours, and/or the like). In some implementations, themonitoring platform can determine the schedule and obtain the ambientlight information, the brightness level value, and/or the like from thelight source according to the schedule. In some implementations, theschedule can indicate one or more polling intervals (e.g., a fastpolling interval, a slow polling interval, an hourly polling interval, a30-minute polling interval, an inactive interval, and/or the like). Forexample, the schedule can indicate a fast polling interval (e.g., ascheduled basis that includes intervals of time less than 5 minutes) fortimes when the ambient light generally changes quickly (e.g., a90-minute period before sunrise, a 90-minute period after sunset, and/orthe like), a slow polling interval (e.g., a scheduled basis thatincludes intervals of time greater than 1 hour) for times when theambient light generally does not change (e.g., midday), and/or the like.

In some implementations, the monitoring platform can obtain the ambientlight information, the brightness level value, and/or the like based ona trigger event. For example, the monitoring platform can monitorweather forecast information and send a fetch request to the lightsource upon a predicted low-light weather condition, such as cloudiness,thunderstorms, smog, and/or the like. As another example, the lightsource can send the ambient light information, the brightness level,and/or the like when the light sensor detects that the ambient lightsatisfies a threshold (e.g., the available light in the environmentaround the light sensor is greater than an ambient light levelthreshold, the available light in the environment around the lightsensor is less than an ambient light level threshold, and/or the like).In some implementations, the monitoring platform can determine thethreshold and send the threshold to the light source. In someimplementations, the user device can obtain the measurement data ondemand (e.g., based on a user request received by the monitoringplatform from the client device). Accordingly, some implementationsprovided in here may reduce the amount of data that needs to becommunicated between the light source and monitoring platform, which canconserve processing resources associated with the light source and/ormonitoring platform, and/or can conserve networking resources dedicatedto facilitating communication between the light source and themonitoring platform.

As shown by reference number 106, the monitoring platform can calculatean illuminance value associated with the illuminance of the ambientlight. In some implementations, the monitoring platform can calculatethe illuminance value associated with the illuminance of the ambientlight based on the ambient light information. For example, in situationswhere the ambient light information is based on information from asingle light sensor, the monitoring platform can parse the ambient lightinformation to determine the illuminance value. As another example, insituations where the ambient light information is based on informationfrom a plurality of light sensors of one or more light sources, themonitoring platform can parse the ambient light information, determinerespective ambient light values associated with the one or more lightsources (e.g., respective ambient light values that indicate arespective illuminance of the ambient light associated with the one ormore light sources), and average the respective ambient light valuesassociated with the one or more light sources to determine theilluminance value. In some implementations, the monitoring platform canaverage the respective ambient light values using a mathematical mean, ageometric mean, a harmonic mean, an interquartile mean, a truncatedmean, and/or the like.

In some implementations, the monitoring platform can determine that theilluminance value satisfies a threshold for a period of time. In someimplementations, the monitoring platform can change the schedule (e.g.,increase a scheduled rate, decrease a scheduled rate, and/or the like)for when the monitoring platform obtains the ambient light information,the brightness level value, and/or the like from the light source basedon determining that the illuminance value satisfies the threshold forthe period of time.

As shown in FIG. 1C and by reference number 108, the monitoring platformcan determine an adjusted brightness level value (e.g., a brightnesslevel value associated with a brightness level that corresponds to theilluminance value). In some implementations, the monitoring platform candetermine the adjusted brightness level value based on the illuminancevalue. In some implementations, the monitoring platform can determine arelationship between the illuminance of the ambient light and abrightness level of the light source (e.g., the brightness level of thelight of the light source). Accordingly, in some implementations, themonitoring platform can determine the adjusted brightness level valuebased on the illuminance value and the relationship (e.g., calculate theadjusted brightness level value by processing the illuminance valueaccording to a formula that indicates the relationship).

In some implementations, the relationship can be a linear relationship,a nonlinear relationship (e.g., a quadratic relationship, an exponentialrelationship, and/or the like), and/or a combination of a linearrelationship and a nonlinear relationship. In some implementations, therelationship can be a linear relationship for illuminance values thatsatisfy an illuminance value threshold. For example, as shown in FIG.1C, the relationship can be a first linear relationship (e.g., shown asLinear Relationship A) for illuminance values that satisfy (e.g., areequal to or greater than) a minimum illuminance value threshold (e.g.,shown as 10 lumens per square meter (lux)). In some implementations, therelationship can be a linear relationship for illuminance values thatsatisfy a first illuminance value threshold and a second illuminancevalue threshold. For example, as shown in FIG. 1C, the relationship canbe a second linear relationship (e.g., shown as Linear Relationship B)for illuminance values that satisfy (e.g., are equal to or greater than)a low illuminance value threshold (e.g., shown as 50 lux) and thatsatisfy (e.g., are less than) a high illuminance value threshold (e.g.,shown as 100 lux).

As shown in FIG. 1C, an illuminance value threshold can be associatedwith a brightness level value. As such, the monitoring platform candetermine a linear relationship for luminance values between a firstilluminance value threshold and a second illuminance value thresholdbased on the first illuminance value threshold, a first brightness levelvalue associated with the first illuminance value threshold, the secondilluminance value threshold, and a second brightness level valueassociated with the second illuminance value threshold. For example, asshown in FIG. 1C, the monitoring platform can determine the first linearrelationship (shown as Linear Relationship A) by calculating the slopebetween the minimum illuminance value threshold and the low illuminancevalue threshold (e.g., dividing a mathematical difference of therespective brightness level values associated with the minimumilluminance value threshold and the low illuminance value threshold by amathematical difference of the minimum illuminance value threshold andthe low illuminance value threshold, i.e. (80−20)/(10−50)=−1.5).Accordingly, the monitoring platform can determine the adjustedbrightness level value based on the first linear relationship forilluminance values between the minimum illuminance value threshold andthe low illuminance value threshold. As another example, as shown inFIG. 1C, the monitoring platform can determine the second linearrelationship (shown as Linear Relationship B) by calculating the slopebetween the low illuminance value threshold and the high illuminancevalue threshold (e.g., dividing a mathematical difference of therespective brightness level values associated with the low illuminancevalue threshold and the high illuminance value threshold by amathematical difference of the low illuminance value threshold and thehigh illuminance value threshold, (i.e., (20−0)/(50−100)=−0.4).Accordingly, the monitoring platform can determine the adjustedbrightness level value based on the second linear relationship forilluminance values between the low illuminance value threshold and thehigh illuminance value threshold.

As shown in FIG. 1D, the monitoring platform can cause the light sourceto change the brightness level of the light. As shown by referencenumber 110, the monitoring platform can determine one or more transitiontimes (e.g., one or more durations for changing the brightness level ofthe light from a first level to a second level) and/or one or moretransition rates (e.g., one or more speeds for changing the brightnesslevel of the light from the first level to the second level). In someimplementations, the monitoring platform can determine the one or moretransition times and the one or more transition rates based on thebrightness level value and the adjusted brightness level value.

In some implementations, determining the one or more transition timesand/or the one or more transition rates based on the brightness levelvalue and the adjusted brightness level value includes calculating adifference between the brightness level value and the adjustedbrightness level value. In some implementations, the monitoring platformcan determine the one or more transition times and/or the one or moretransition rates based on the difference. In some implementations, themonitoring platform can determine the one or more transition times basedon the difference and the one or more transition rates.

In some implementations, the monitoring platform can process historicalbrightness level values, historical adjusted brightness level values,historical ambient light information, historical weather information,and/or the like to generate and/or train a machine learning model topredict and/or forecast the one or more transition times and/or the oneor more transition rates.

In some implementations, the monitoring platform can perform a set ofdata manipulation procedures to process the historical brightness levelvalues, the historical adjusted brightness level values, the historicalambient light information, the historical weather information, and/orthe like to generate the machine learning model, such as a datapreprocessing procedure, a model training procedure, a modelverification procedure, and/or the like. For example, the monitoringplatform can preprocess the historical brightness level values, thehistorical adjusted brightness level values, the historical ambientlight information, the historical weather information, and/or the liketo remove numbers and/or letters, non-ASCII characters, other specialcharacters, white spaces, confidential data, and/or the like. In thisway, the monitoring platform can organize thousands, millions, orbillions of data entries for machine learning and model generation—adata set that cannot be processed objectively by a human actor.

In some implementations, the monitoring platform can perform a trainingoperation when generating the machine learning model. For example, themonitoring platform can portion the historical brightness level values,the historical adjusted brightness level values, the historical ambientlight information, the historical weather information, and/or the likeinto a training set, a validation set, a test set, and/or the like. Insome implementations, the monitoring platform can train the machinelearning model using, for example, an unsupervised training procedureand based on the training set of the data. In some implementations, themonitoring platform can perform dimensionality reduction to reduce thehistorical brightness level values, the historical adjusted brightnesslevel values, the historical ambient light information, the historicalweather information, and/or the like to a minimum feature set, therebyreducing processing to train the machine learning model, and can apply aclassification technique, to the minimum feature set.

In some implementations, the monitoring platform can use a logisticregression classification technique to determine a categorical outcome(e.g., that particular historical brightness level values, particularhistorical adjusted brightness level values, particular historicalambient light information, particular historical weather information,and/or the like are associated with particular transition times and/orparticular transition rates). Additionally, or alternatively, themonitoring platform can use a naïve Bayesian classifier technique. Inthis case, the monitoring platform can perform binary recursivepartitioning to split the data of the minimum feature set intopartitions and/or branches, and use the partitions and/or branches toperform predictions (e.g., that particular historical brightness levelvalues, particular historical adjusted brightness level values,particular historical ambient light information, particular historicalweather information, and/or the like are associated with particulartransition times and/or particular transition rates). Based on usingrecursive partitioning, the monitoring platform can reduce utilizationof computing resources relative to manual, linear sorting and analysisof data points, thereby enabling use of thousands, millions, or billionsof data points to train the machine learning model, which can result ina more accurate machine learning model than using fewer data points.

Additionally, or alternatively, the monitoring platform can use asupport vector machine (SVM) classifier technique to generate anon-linear boundary between data points in the training set. In thiscase, the non-linear boundary is used to classify test data (e.g.,particular historical brightness level values, particular historicaladjusted brightness level values, particular historical ambient lightinformation, particular historical weather information, and/or the like)into a particular class (e.g., a class indicating that the particularhistorical brightness level values, the particular historical adjustedbrightness level values, the particular historical ambient lightinformation, the particular historical weather information, and/or thelike is associated with particular transition times and/or particulartransition rates).

Additionally, or alternatively, the monitoring platform can train themachine learning model using a supervised training procedure thatincludes receiving input to the model from a subject matter expert,which can reduce an amount of time, an amount of processing resources,and/or the like to train the machine learning model relative to anunsupervised training procedure. In some implementations, the monitoringplatform can use one or more other model training techniques, such as aneural network technique, a latent semantic indexing technique, and/orthe like. For example, the monitoring platform can perform an artificialneural network processing technique (e.g., using a two-layer feedforwardneural network architecture, a three-layer feedforward neural networkarchitecture, and/or the like) to perform pattern recognition withregard to patterns of particular historical brightness level values,particular historical adjusted brightness level values, particularhistorical ambient light information, particular historical weatherinformation, and/or the like associated with particular transition timesand/or particular transition rates. In this case, using the artificialneural network processing technique can improve an accuracy of themachine learning model generated by the monitoring platform by beingmore robust to noisy, imprecise, or incomplete data, and by enabling themonitoring platform to detect patterns and/or trends undetectable tohuman analysts or systems using less complex techniques.

Accordingly, the monitoring platform can use any number of artificialintelligence techniques, machine learning techniques, deep learningtechniques, and/or the like to determine the one or more transitiontimes and/or the one or more transition rates.

As shown by reference number 112, the monitoring platform can send(e.g., transmit via the network) the adjusted brightness level value,the one or more transition times, the one or more transition rates,and/or the like to the light source. In some implementations, the lightsource can obtain (e.g., receive, fetch, collect, capture, and/or thelike) the adjusted brightness level value, the one or more transitiontimes, the one or more transition rates, and/or the like from themonitoring platform.

As shown by reference number 114, the light source can change thebrightness level of the light according to the adjusted brightness levelvalue, the one or more transition times, the one or more transitionrates, and/or the like. For example, the light source can adjust thebrightness level of the light from the brightness level value to theadjusted brightness level value over the one or more transition timesand/or at the one or more transition rates.

As indicated above, FIG. 1 is provided merely as an example. Otherexamples are possible and can differ from what was described with regardto FIG. 1.

FIG. 2 is a diagram of an example environment 200 in which systemsand/or methods, described herein, can be implemented. As shown in FIG.2, environment 200 can include a light source 210, a monitoring platform220 in a cloud computing environment 222 that includes a set ofcomputing resources 224, a client device 230, and a network 240. Devicesof environment 200 can interconnect via wired connections, wirelessconnections, or a combination of wired and wireless connections.

Light source(s) 210 include one or more devices capable of providingillumination, such as a as a halogen light, an incandescent light, acompact fluorescent (CFL) light, a light emitting diode (LED) light, aflorescent light, a neon light, and/or the like. In someimplementations, light source 210 can include a light sensor (e.g., aphotocell, a photo resistor, a photovoltaic cell, and/or the like) thatcan detect ambient light, collect ambient light information. and/or thelike. In some implementations, light source 210 can provide ambientlight information and/or a brightness level value to monitoring platform220, can receive an adjusted brightness level, transition time(s),and/or transition rate(s) from monitoring platform 220, and/or the like.In some implementations, light source 210 can change a brightness levelaccording to the adjusted brightness level value, transition time(s),and/or transition rate(s), and/or the like.

Monitoring platform 220 includes one or more devices that receive andprocess information associated with monitoring ambient light. Forexample, monitoring platform 220 can receive ambient light informationand/or a brightness level value from light sensor 210, can calculate anilluminance value, can determine an adjusted brightness level value,and/or can send the adjusted brightness level value to light source 210.In some implementations, monitoring platform 220 can be designed to bemodular such that certain software components can be swapped in or outdepending on a particular need. As such, monitoring platform 220 can beeasily and/or quickly reconfigured for different uses. In someimplementations, monitoring platform 220 can receive information fromand/or transmit information to multiple light sources 210.

In some implementations, as shown, monitoring platform 220 can be hostedin cloud computing environment 222. Notably, while implementationsdescribed herein describe monitoring platform 220 as being hosted incloud computing environment 222, in some implementations, monitoringplatform 220 might not be cloud-based (i.e., can be implemented outsideof a cloud computing environment 222) or might be partially cloud-based.

Cloud computing environment 222 includes an environment that hostsmonitoring platform 220. Cloud computing environment 222 can providecomputation, software, data access, storage, etc. services that do notrequire end-user knowledge of a physical location and configuration ofsystem(s) and/or device(s) that hosts monitoring platform 220. As shown,cloud computing environment 222 can include a group of computingresources 224 (referred to collectively as “computing resources 224” andindividually as “computing resource 224”).

Computing resource 224 includes one or more personal computers,workstation computers, server devices, or other types of computationand/or communication devices. In some implementations, computingresource 224 can host monitoring platform 220. The cloud resources caninclude compute instances executing in computing resource 224, storagedevices provided in computing resource 224, data transfer devicesprovided by computing resource 224, and/or the like. In someimplementations, computing resource 224 can communicate with othercomputing resources 224 via wired connections, wireless connections, ora combination of wired and wireless connections.

As further shown in FIG. 2, computing resource 224 includes a group ofcloud resources, such as one or more applications (“Apps”) 224-1, one ormore virtual machines (“VMs”) 224-2, virtualized storage (“VSs”) 224-3,one or more hypervisors (“HYPs”) 224-4, and/or the like.

Application 224-1 includes one or more software applications that can beprovided to or accessed by light source 210 and/or client device 230.Application 224-1 can eliminate a need to install and execute thesoftware applications on light source 210 and/or client device 230. Forexample, application 224-1 can include software associated withmonitoring platform 220 and/or any other software capable of beingprovided via cloud computing environment 222. In some implementations,one application 224-1 can send/receive information to/from one or moreother applications 224-1, via virtual machine 224-2.

Virtual machine 224-2 includes a software implementation of a machine(e.g., a computer) that executes programs like a physical machine.Virtual machine 224-2 can be either a system virtual machine or aprocess virtual machine, depending upon use and degree of correspondenceto any real machine by virtual machine 224-2. A system virtual machinecan provide a complete system platform that supports execution of acomplete operating system (“OS”). A process virtual machine can executea single program, and can support a single process. In someimplementations, virtual machine 224-2 can execute on behalf of a user(e.g., client device 230 or an operator of monitoring platform 220), andcan manage infrastructure of cloud computing environment 222, such asdata management, synchronization, or long-duration data transfers.

Virtualized storage 224-3 includes one or more storage systems and/orone or more devices that use virtualization techniques within thestorage systems or devices of computing resource 224. In someimplementations, within the context of a storage system, types ofvirtualizations can include block virtualization and filevirtualization. Block virtualization can refer to abstraction (orseparation) of logical storage from physical storage so that the storagesystem can be accessed without regard to physical storage orheterogeneous structure. The separation can permit administrators of thestorage system flexibility in how the administrators manage storage forend users. File virtualization can eliminate dependencies between dataaccessed at a file level and a location where files are physicallystored. This can enable optimization of storage use, serverconsolidation, and/or performance of non-disruptive file migrations.

Hypervisor 224-4 can provide hardware virtualization techniques thatallow multiple operating systems (e.g., “guest operating systems”) toexecute concurrently on a host computer, such as computing resource 224.Hypervisor 224-4 can present a virtual operating platform to the guestoperating systems, and can manage the execution of the guest operatingsystems. Multiple instances of a variety of operating systems can sharevirtualized hardware resources.

Client device 230 includes one or more devices capable of receiving,generating, storing, processing, and/or providing information associatedwith ambient light monitoring of light source(s) 210. For example,client device 230 can include a communication and/or computing device,such as a mobile phone (e.g., a smart phone, a radiotelephone, etc.), alaptop computer, a tablet computer, a handheld computer, a gamingdevice, a wearable communication device (e.g., a smart wristwatch, apair of smart eyeglasses, etc.), or a similar type of device. In someimplementations, client device 230 can obtain information about lightsource 210 and/or information about monitoring platform 220. In someimplementations, client device 230 can cause display of the informationabout the light source and/or the information about the monitoringplatform to a user.

Network 240 includes one or more wired and/or wireless networks. Forexample, network 240 can include a cellular network (e.g., a fifthgeneration (5G) network, a long-term evolution (LTE) network, a thirdgeneration (3G) network, a code division multiple access (CDMA) network,etc.), a public land mobile network (PLMN), a local area network (LAN),a wide area network (WAN), a metropolitan area network (MAN), atelephone network (e.g., the Public Switched Telephone Network (PSTN)),a private network, an ad hoc network, an intranet, the Internet, a fiberoptic-based network, and/or the like, and/or a combination of these orother types of networks.

The number and arrangement of devices and networks shown in FIG. 2 areprovided as an example. In practice, there can be additional devicesand/or networks, fewer devices and/or networks, different devices and/ornetworks, or differently arranged devices and/or networks than thoseshown in FIG. 2. Furthermore, two or more devices shown in FIG. 2 can beimplemented within a single device, or a single device shown in FIG. 2can be implemented as multiple, distributed devices. Additionally, oralternatively, a set of devices (e.g., one or more devices) ofenvironment 200 can perform one or more functions described as beingperformed by another set of devices of environment 200.

FIG. 3 is a diagram of example components of a device 300. Device 300can correspond to light source(s) 210, monitoring platform 220,computing resource 224, and/or client device 230. In someimplementations, light source(s) 210, monitoring platform 220, computingresource 224, and/or client device 230 can include one or more devices300 and/or one or more components of device 300. As shown in FIG. 3,device 300 can include a bus 310, a processor 320, a memory 330, astorage component 340, an input component 350, an output component 360,and a communication interface 370.

Bus 310 includes a component that permits communication among thecomponents of device 300. Processor 320 is implemented in hardware,firmware, or a combination of hardware and software. Processor 320 is acentral processing unit (CPU), a graphics processing unit (GPU), anaccelerated processing unit (APU), a microprocessor, a microcontroller,a digital signal processor (DSP), a field-programmable gate array(FPGA), an application-specific integrated circuit (ASIC), or anothertype of processing component. In some implementations, processor 320includes one or more processors capable of being programmed to perform afunction. Memory 330 includes a random access memory (RAM), a read onlymemory (ROM), and/or another type of dynamic or static storage device(e.g., a flash memory, a magnetic memory, and/or an optical memory) thatstores information and/or instructions for use by processor 320.

Storage component 340 stores information and/or software related to theoperation and use of device 300. For example, storage component 340 caninclude a hard disk (e.g., a magnetic disk, an optical disk, amagneto-optic disk, and/or a solid state disk), a compact disc (CD), adigital versatile disc (DVD), a floppy disk, a cartridge, a magnetictape, and/or another type of non-transitory computer-readable medium,along with a corresponding drive.

Input component 350 includes a component that permits device 300 toreceive information, such as via user input (e.g., a touch screendisplay, a keyboard, a keypad, a mouse, a button, a switch, and/or amicrophone). Additionally, or alternatively, input component 350 caninclude a sensor for sensing information (e.g., a global positioningsystem (GPS) component, an accelerometer, a gyroscope, and/or anactuator). Output component 360 includes a component that providesoutput information from device 300 (e.g., a display, a speaker, and/orone or more light-emitting diodes (LEDs)).

Communication interface 370 includes a transceiver-like component (e.g.,a transceiver and/or a separate receiver and transmitter) that enablesdevice 300 to communicate with other devices, such as via a wiredconnection, a wireless connection, or a combination of wired andwireless connections. Communication interface 370 can permit device 300to receive information from another device and/or provide information toanother device. For example, communication interface 370 can include anEthernet interface, an optical interface, a coaxial interface, aninfrared interface, a radio frequency (RF) interface, a universal serialbus (USB) interface, a wireless local area network interface, a cellularnetwork interface, or the like.

Device 300 can perform one or more processes described herein. Device300 can perform these processes based on processor 320 executingsoftware instructions stored by a non-transitory computer-readablemedium, such as memory 330 and/or storage component 340. Acomputer-readable medium is defined herein as a non-transitory memorydevice. A memory device includes memory space within a single physicalstorage device or memory space spread across multiple physical storagedevices.

Software instructions can be read into memory 330 and/or storagecomponent 340 from another computer-readable medium or from anotherdevice via communication interface 370. When executed, softwareinstructions stored in memory 330 and/or storage component 340 can causeprocessor 320 to perform one or more processes described herein.Additionally, or alternatively, hardwired circuitry can be used in placeof or in combination with software instructions to perform one or moreprocesses described herein. Thus, implementations described herein arenot limited to any specific combination of hardware circuitry andsoftware.

The number and arrangement of components shown in FIG. 3 are provided asan example. In practice, device 300 can include additional components,fewer components, different components, or differently arrangedcomponents than those shown in FIG. 3. Additionally, or alternatively, aset of components (e.g., one or more components) of device 300 canperform one or more functions described as being performed by anotherset of components of device 300.

FIG. 4 is a flow chart of an example process 400 for causing abrightness level of a light to change. In some implementations, one ormore process blocks of FIG. 4 can be performed by a server device suchas a monitoring platform (e.g., monitoring platform 220). In someimplementations, one or more process blocks of FIG. 4 can be performedby another device or a group of devices separate from or including themonitoring platform, such as a light source (e.g., light source 210), aclient device (e.g., client device 230), and/or the like.

As shown in FIG. 4, process 400 can include obtaining informationconcerning illuminance of ambient light from a plurality of lightsensors associated with a plurality of light sources, wherein the serverdevice periodically obtains the information (block 410). For example,the monitoring platform (e.g., using computing resource 224, processor320, memory 330, storage component 340, input component 350,communication interface 370, and/or the like) can obtain informationconcerning illuminance of ambient light from a plurality of lightsensors associated with a plurality of light sources, as described abovein connection with FIGS. 1A-1D. In some implementations, the serverdevice can periodically obtain the information.

As further shown in FIG. 4, process 400 can include obtaining respectivebrightness level values associated with respective brightness levels ofthe plurality of light sources (block 420). For example, the monitoringplatform (e.g., using computing resource 224, processor 320, memory 330,storage component 340, input component 350, communication interface 370,and/or the like) can obtain respective brightness level valuesassociated with respective brightness levels of the plurality of lightsources, as described above in connection with FIGS. 1A-1D.

As further shown in FIG. 4, process 400 can include calculating anilluminance value associated with the illuminance of the ambient lightbased on the information (block 430). For example, the monitoringplatform (e.g., using computing resource 224, processor 320, memory 330,storage component 340, and/or the like) can calculate an illuminancevalue associated with the illuminance of the ambient light based on theinformation, as described above in connection with FIGS. 1A-1D.

As further shown in FIG. 4, process 400 can include determining anadjusted brightness level value, for the plurality of light sources,based on the illuminance value (block 440). For example, the monitoringplatform (e.g., using computing resource 224, processor 320, memory 330,storage component 340, and/or the like) can determine an adjustedbrightness level value, for the plurality of light sources, based on theilluminance value, as described above in connection with FIGS. 1A-1D.

As further shown in FIG. 4, process 400 can include determining one ormore transition times and one or more transition rates based on therespective brightness level values and the adjusted brightness levelvalue (block 450). For example, the monitoring platform (e.g., usingcomputing resource 224, processor 320, memory 330, storage component340, and/or the like) can determine one or more transition times and oneor more transition rates based on the respective brightness level valuesand the adjusted brightness level value, as described above inconnection with FIGS. 1A-1D.

As further shown in FIG. 4, process 400 can include causing therespective brightness levels of the plurality of light sources to changeaccording to the adjusted brightness level value, the one or moretransition times, and the one or more transition rates, wherein the oneor more transition times and the one or more transition rates are to beused to transition the respective brightness levels of the plurality oflight sources from the respective brightness level values to theadjusted brightness level value (block 460). For example, the monitoringplatform (e.g., using computing resource 224, processor 320, memory 330,storage component 340, output component 360, communication interface370, and/or the like) can cause the respective brightness levels of theplurality of light sources to change according to the adjustedbrightness level value, the one or more transition times, and the one ormore transition rates, as described above in connection with FIGS.1A-1D. In some implementations, the one or more transition times and theone or more transition rates can be used to transition the respectivebrightness levels of the plurality of light sources from the respectivebrightness level values to the adjusted brightness level value.

Process 400 can include additional implementations, such as any singleimplementation or any combination of implementations described belowand/or in connection with one or more other processes describedelsewhere herein.

In some implementations, when determining the adjusted brightness levelvalue, for the plurality of light sources, based on the illuminancevalue, the monitoring platform can determine a linear relationshipbetween the illuminance of the ambient light and the respectivebrightness levels of the plurality of light sources, and can determinethe adjusted brightness level value based on the linear relationship andthe illuminance value.

In some implementations, when determining the adjusted brightness levelvalue, for the plurality of light sources, based on the illuminancevalue, the monitoring platform can determine that the illuminance valuesatisfies an illuminance value threshold, and determine the adjustedbrightness level value based on the illuminance value and a relationshipbetween the illuminance of the ambient light and the respectivebrightness levels of the plurality of light sources, where therelationship is linear for illuminance values that satisfy theilluminance value threshold.

In some implementations, when determining the adjusted brightness levelvalue, for the plurality of light sources, based on the illuminancevalue, the monitoring platform can obtain a first illuminance valuethreshold and a second illuminance value threshold, and obtain a firstbrightness level value and a second brightness level value, where thefirst brightness level value is associated with the first illuminancevalue threshold and the second brightness level value is associated withthe second illuminance value threshold. Additionally, the monitoringplatform can determine a linear relationship between the illuminance ofthe ambient light and the respective brightness levels of the pluralityof light sources based on the first brightness level value, the firstilluminance value threshold, the second brightness level value, and thesecond illuminance value threshold; can determine that the illuminancevalue satisfies the first illuminance value threshold and the secondilluminance value threshold; and can determine the adjusted brightnesslevel value based on the linear relationship and the illuminance value.

In some implementations, when calculating the illuminance value based onthe information, the monitoring platform can determine respectiveambient light values associated with the plurality of light sensors, andcan average the respective ambient light values associated with theplurality of light sensors using an interquartile mean.

In some implementations, when determining the one or more transitiontimes and the one or more transition rates based on the respectivebrightness level values and the adjusted brightness level value, themonitoring platform can calculate a difference between the respectivebrightness level values and the adjusted brightness level value, candetermine the one or more transition rates based on the difference, anddetermine the one or more transition times based on the difference andthe one or more transition rates.

In some implementations, the monitoring platform can determine that theilluminance value satisfies a threshold for a period of time, and canincrease a rate at which information is obtained from the plurality oflight sensors based on determining that the illuminance value satisfiesthe threshold for the period of time.

Although FIG. 4 shows example blocks of process 400, in someimplementations, process 400 can include additional blocks, fewerblocks, different blocks, or differently arranged blocks than thosedepicted in FIG. 4. Additionally, or alternatively, two or more of theblocks of process 400 can be performed in parallel.

Some implementations are described herein in connection with thresholds.As used herein, satisfying a threshold can refer to a value beinggreater than the threshold, more than the threshold, higher than thethreshold, greater than or equal to the threshold, less than thethreshold, fewer than the threshold, lower than the threshold, less thanor equal to the threshold, equal to the threshold, or the like.

To the extent the aforementioned implementations collect, store, oremploy personal information of individuals, it should be understood thatsuch information shall be used in accordance with all applicable lawsconcerning protection of personal information. Additionally, thecollection, storage, and use of such information can be subject toconsent of the individual to such activity, for example, through wellknown “opt-in” or “opt-out” processes as can be appropriate for thesituation and type of information. Storage and use of personalinformation can be in an appropriately secure manner reflective of thetype of information, for example, through various encryption andanonymization techniques for particularly sensitive information.

It will be apparent that systems and/or methods, described herein, canbe implemented in different forms of hardware, firmware, or acombination of hardware and software. The actual specialized controlhardware or software code used to implement these systems and/or methodsis not limiting of the implementations. Thus, the operation and behaviorof the systems and/or methods were described herein without reference tospecific software code—it being understood that software and hardwarecan be designed to implement the systems and/or methods based on thedescription herein.

Even though particular combinations of features are recited in theclaims and/or disclosed in the specification, these combinations are notintended to limit the disclosure of possible implementations. In fact,many of these features can be combined in ways not specifically recitedin the claims and/or disclosed in the specification. Although eachdependent claim listed below can directly depend on only one claim, thedisclosure of possible implementations includes each dependent claim incombination with every other claim in the claim set.

No element, act, or instruction used herein should be construed ascritical or essential unless explicitly described as such. Also, as usedherein, the articles “a” and “an” are intended to include one or moreitems, and can be used interchangeably with “one or more.” Furthermore,as used herein, the term “set” is intended to include one or more items(e.g., related items, unrelated items, a combination of related andunrelated items, etc.), and can be used interchangeably with “one ormore.” Where only one item is intended, the term “one” or similarlanguage is used. Also, as used herein, the terms “has,” “have,”“having,” or the like are intended to be open-ended terms. Further, thephrase “based on” is intended to mean “based, at least in part, on”unless explicitly stated otherwise.

What is claimed is:
 1. A method, comprising: obtaining, by a serverdevice, one or more measures of ambient light from one or more lightsensors associated with a plurality of light sources; calculating, bythe server device, an illuminance value based on the one or moremeasures of ambient light; obtaining, by the server device, respectivebrightness level values associated with respective brightness levels ofthe plurality of light sources; determining, by the server device, atleast one adjusted brightness level value, for the plurality of lightsources, based on the illuminance value; determining, by the serverdevice and based on the respective brightness level values and the atleast one adjusted brightness level value, at least one of: one or moretransition times, or one or more transition rates; and causing, by theserver device, the respective brightness level values of the pluralityof light sources to change according to the at least one adjustedbrightness level value and the at least one of the one or moretransition times or the one or more transition rates.
 2. The method ofclaim 1, further comprising: receiving, from a client device, a requestassociated with the plurality of light sources; and providing, to theclient device and based on the request, data indicating at least one of:the one or more measures of ambient light, the illuminance value, therespective brightness level values, the adjusted brightness levelvalues, the one or more transition times, or the one or more transitionrates.
 3. The method of claim 1, wherein: the plurality of light sourcesare included in a group of light sources monitored by the server device;and the method further comprises: monitoring, by the server device, atleast one other group of light sources.
 4. The method of claim 1,further comprising: performing, prior to calculating the illuminancevalue, one or more noise reduction functions on the one or more measuresof ambient light.
 5. The method of claim 1, wherein obtaining the one ormore measures of ambient light comprises: periodically obtaining the oneor more measures of ambient light according to a schedule, wherein theschedule specifies at least two different polling intervals.
 6. Themethod of claim 1, wherein determining the plurality of adjustedbrightness level values comprises: determining the at least one adjustedbrightness level value based on a linear relationship between therespective brightness level values and the illuminance value.
 7. Themethod of claim 1, further comprising: generating a machine learningmodel based on historical brightness level values, historical adjustedbrightness level values, and historical measurements of ambient light,the machine learning model being trained to predict one or more of:predicted transition times, or predicted transition rates; and whereindetermining the at least one of the one or more transition times or theone or more transition rates comprises: determining the at least one ofthe one or more transition times or the one or more transition ratesusing the machine learning model.
 8. A device, comprising: one or morememories; and one or more processors communicatively coupled to the oneor more memories, configured to: obtain one or more measures of ambientlight from one or more light sensors associated with a plurality oflight sources; calculate an illuminance value based on the one or moremeasures of ambient light; obtain respective brightness level valuesassociated with respective brightness levels of the plurality of lightsources; determine at least one adjusted brightness level value, for theplurality of light sources, based on the illuminance value; determine,based on the respective brightness level values and the at least oneadjusted brightness level value, at least one of: one or more transitiontimes, or one or more transition rates; and cause the respectivebrightness level values of the plurality of light sources to changeaccording to the at least one adjusted brightness level value and the atleast one of the one or more transition times or the one or moretransition rates.
 9. The device of claim 8, wherein the one or moreprocessors are further configured to: receive, from a client device, arequest associated with the plurality of light sources; and provide, tothe client device and based on the request, data indicating at least oneof: the one or more measures of ambient light, the illuminance value,the respective brightness level values, the adjusted brightness levelvalues, the one or more transition times, or the one or more transitionrates.
 10. The device of claim 8, wherein: the plurality of lightsources are included in a group of light sources monitored by thedevice; and the one or more processors are further configured to:monitor at least one other group of light sources.
 11. The device ofclaim 8, wherein the one or more processors are further configured to:perform, prior to calculating the illuminance value, one or more noisereduction functions on the one or more measures of ambient light. 12.The device of claim 8, wherein the one or more processors, whenobtaining the one or more measures of ambient light, are configured to:periodically obtain the one or more measures of ambient light accordingto a schedule, wherein the schedule specifies at least two differentpolling intervals.
 13. The device of claim 8, wherein the one or moreprocessors, when determining the plurality of adjusted brightness levelvalues, are configured to: determine the at least one adjustedbrightness level value based on a linear relationship between therespective brightness level values and the illuminance value.
 14. Thedevice of claim 8, wherein the one or more processors are furtherconfigured to: generate a machine learning model based on historicalbrightness level values, historical adjusted brightness level values,and historical measurements of ambient light, the machine learning modelbeing trained to predict one or more of: predicted transition times, orpredicted transition rates; and wherein the one or more processors, whendetermine the at least one of the one or more transition times or theone or more transition rates, are configured to: determine the at leastone of the one or more transition times or the one or more transitionrates using the machine learning model.
 15. A non-transitorycomputer-readable medium storing instructions, the instructionscomprising: one or more instructions that, when executed by one or moreprocessors of a device, cause the one or more processors to: obtain oneor more measures of ambient light from one or more light sensorsassociated with a plurality of light sources; calculate an illuminancevalue based on the one or more measures of ambient light; obtainrespective brightness level values associated with respective brightnesslevels of the plurality of light sources; determine at least oneadjusted brightness level value, for the plurality of light sources,based on the illuminance value; determine, based on the respectivebrightness level values and the at least one adjusted brightness levelvalue, at least one of: one or more transition times, or one or moretransition rates; and cause the respective brightness level values ofthe plurality of light sources to change according to the at least oneadjusted brightness level value and the at least one of the one or moretransition times or the one or more transition rates.
 16. Thenon-transitory computer-readable medium of claim 15, wherein the one ormore instructions, when executed by the one or more processors, furthercause the one or more processors to: receive, from a client device, arequest associated with the plurality of light sources; and provide, tothe client device and based on the request, data indicating at least oneof: the one or more measures of ambient light, the illuminance value,the respective brightness level values, the adjusted brightness levelvalues, the one or more transition times, or the one or more transitionrates.
 17. The non-transitory computer-readable medium of claim 15,wherein: the plurality of light sources are included in a group of lightsources monitored by the device; and the one or more instructions, whenexecuted by the one or more processors, further cause the one or moreprocessors to: monitor at least one other group of light sources. 18.The non-transitory computer-readable medium of claim 15, wherein the oneor more instructions, when executed by the one or more processors,further cause the one or more processors to: perform, prior tocalculating the illuminance value, one or more noise reduction functionson the one or more measures of ambient light.
 19. The non-transitorycomputer-readable medium of claim 15, wherein the one or moreinstructions, that cause the one or more processors to obtain the one ormore measures of ambient light, cause the one or more processors to:periodically obtain the one or more measures of ambient light accordingto a schedule, wherein the schedule specifies at least two differentpolling intervals.
 20. The non-transitory computer-readable medium ofclaim 15, wherein the one or more instructions, that cause the one ormore processors to determine the plurality of adjusted brightness levelvalues, cause the one or more processors to: determine the at least oneadjusted brightness level value based on a linear relationship betweenthe respective brightness level values and the illuminance value.